home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-12-13 | 7.5 KB | 173 lines | [TEXT/CWIE] |
- NetSprocket 1.0.3
- Release Notes
- ---------------
-
- Please report all bugs to sprockets@adr.apple.com!
-
-
- What's New?
- -----------
-
- NetSprocket 1.0.3 is a bug-fix for NetSprocket 1.0, and contains one new
- feature.
-
- Note that NetSprocket 68K has been delayed until the CFM68K problem has
- been fixed. For more info on the CFM68K problem, see www.apple.com.
-
- NetSprocket 1.0.2 was an internal-only release.
-
- Bugs fixed:
-
- 1. If the user chose not to play on the host machine, NetSprocket could
- crash under certain circumstances. Note that your game needs to be
- able to handle having a "headless server," or it needs to disallow
- a blank username. Being a headless server means that you should
- never call NSpMessage_Send.
-
- 2. NetSprocket had been linking OT libraries with normal, as opposed to
- weak linkage. This would cause your app to fail at init time if the
- user had NetSprocket, but not OT, installed.
-
- 3. Async message handlers were not being called all the time. Some
- messages would slip through, and your handler would not be notified.
-
- 4. There have been several improvements to the HI, including alerts that
- tell the user when the username is empty when an improperly formed
- IP address was entered, and when a DNS name couldn't be resolved.
-
- 5. The NetSprocket.h header had an incorrect parameter type for
- NspProtocolList_GetCount(). The first parameter should be of type
- NSpProtocolListReference, not NSpProtocolReference. This change
- has no code-level effect (they are both 32 bit unsigned ints).
-
- 6. NetSprocket would not release an IP port immediately after a game
- ended. This would cause the user to have to select a new port
- if he hosted a game, quit, and then immediately hosted another game.
- The delay was 4 minutes, which is actually part of the RFC for TCP/IP.
- However, we have changed NetSprocket so that the port is released
- immediately.
-
- 7. Fixed the crash in EnableAdvertising. The function now works as expected.
-
- 8. Fixed a memory leak that would cause memory to be allocated and not
- released if you hosted or joined repeated games. The memory is now
- allocated once each time your app is launched. Note that, since
- NetSprocket uses OT's memory allocators, its memory comes out of the
- System Heap. Also, while it may SEEM that memory is not being freed,
- that may be misleading since OT does its memory cleanup when NetSprocket
- is unloaded.
-
- 9. Exposed the NSpGetVersion function. This returns a NumVersion type,
- the same as what you find in the 'vers' resource.
-
- 10. Exposed the NSpGame_GetInfo function. This had been unexported because
- of some issues around the information you get when you call it from a
- joiner. You don't get the correct max players, and you don't get the
- correct game name when you call this from a joiner. The fix has been
- deferred to another release, since it's not a critical component.
-
- Feature:
-
- The way IP ports are handled has changed a little. If you don't
- add an IP protocol ref to the protocol list you pass to
- NSpDoModalHostDialog, NetSprocket will suggest a default IP port
- to the user, based on the value of inGameID, passed to NSpInitialize.
- NetSprocket will also put this as the default value in the port
- for the join dialog. The default port is calculated by:
-
- (creatorType % (32760 - 1024)) + 1024;
-
- What we recommend you do is not add an IP protocol ref to your
- protocol list, and just let NetSprocket pick the right port for
- you. If you do want to use the IP protocol ref, we recommend
- that you use this as your default port, since it is what will
- be displayed for the IP panel in the join dialog. In both cases,
- the user can override the suggested port.
-
- As part of this change, the Join dialog changed slightly. The port
- is now set in a separate field.
-
-
- Release Components
- ------------------
-
- NetSprocket Release Notes - this file
- NetSprocket.h - the header file to compile with.
- NetSprocketLib - release version of the library
- NetSprocketDebugLib - debugging version of the library
- NetSprocketTest - test program
- NetSprocketTest.ยต - Code Warrior 9 project to build test
- NetSprocketTest Sources - sources for test program
-
- Note: NetSprocketTest uses Metrowerks' PowerPlant, and requires CW8 or later
- to build.
-
- WARNING: don't place both the debugging and non-debugging versions of the
- library in the search path or you will not be sure which version you will be
- using.
-
- Dependencies
- ------------
-
- NetSprocket requires OpenTransport version 1.1 or later. 1.1 is the version
- that is installed by the System 7.5 Update 2.0, or the System 7.5.3 installer.
-
- NetSprocket requires the latest Universal Headers -- version 2.1.2 or later.
- You can find them on E.T.O. #20, the MacOS SDK CD-ROMs, Apple's web-site, or
- a number of other locations.
-
- Compatability with Prereleases
- ------------------------------
-
- NetSprocket 1.0.3 is fully compatible with all previous releases.
-
- Getting the Most out of NetSprocket
- -----------------------------------
-
- To get the optimal performance out of NetSprocket, design your game to send
- "Normal" messages that contain less than 550 bytes of data. This allows
- NetSprocket to use datagram-level delivery for both TCP/IP and AppleTalk.
- Using "Registered" messages can cause a 2-50% network performance degradation,
- depending on a number of factors, including network bandwith, utilization,
- message size, and send frequency.
-
- All messages, except ones sent from a player to himself, are sent through the
- host. Therefore, the host is one "hop" from any other player, and two non-host
- players are always two "hops" apart.
-
- Sending a message to a group is not as efficient as sending to everyone in the
- game, or to a single player. It is usually more efficient than sending to each
- individual in the group separately.
-
- You CAN NOT send messages at VBL (or any other interrupt) time with NetSprocket
- 1.0. You should schedule a deferred system task, or just wait until system
- task time before sending. You CAN however, call NSpMessage_Get at interrupt
- time. We generally recommend against all interrupt-time calls to the Game
- Sprockets.
-
- The number of players in a NetSprocket game is limited only by memory (and
- networking resources, such as available ports). If you exepect to handle lots
- of players (14+), you need to make sure you give NetSprocket sufficient memory
- and queue elements when you initialize it. If you get send failed or memory
- error message from NetSprocket, try giving it more memory.
-
- If you have a situation where your game has players whose network throughput is
- greatly disparate, you need to make sure you don't choke the slow person. For
- example, if you have 4 players on AppleTalk over Ethernet, and you have a fifth
- player join the game over a 28.8k PPP connection, and your fast machines are
- sending messages 30 times a second each, you're going to quickly gag the
- newcomer with too much data, and the host will simply not be able to deliver
- messages as quickly as you generate them. The newcomer will be disconnected
- after approximately 20 messages have been queued up, waiting for flow control
- to lift before delivering them. You can avoid this type of problem by
- throttling down your game's send rate to allow the newcomer to participate.
- You can also avoid it by sending "Junk" messages instead of Normal.
-
- NetSprocket 1.0 does not implement Round-Trip-Time or throughput functions,
- though the next release will. You can implement your own RTT and thruput
- functions on top of the NetSprocket API yourself, though.
-
- Known Bugs
- ----------
-
- Host renegotiation does not work.